package com.zenithmind.coding.config.security;

import org.springframework.security.config.annotation.web.builders.HttpSecurity;

/**
 * 安全配置策略接口 - 遵循策略模式和依赖倒置原则
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
public interface SecurityConfigurationStrategy {

    /**
     * 配置HTTP安全
     * 
     * @param http HttpSecurity对象
     * @param endpointRegistry 端点注册表
     * @throws Exception 配置异常
     */
    void configure(HttpSecurity http, SecurityEndpointRegistry endpointRegistry) throws Exception;

    /**
     * 获取策略名称
     * 
     * @return 策略名称
     */
    String getStrategyName();

    /**
     * 获取策略优先级
     * 
     * @return 优先级（数字越小优先级越高）
     */
    int getPriority();
}
